package com.lingxu.module.earlyWarn.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.lingxu.base.common.api.vo.Result;
import com.lingxu.module.earlyWarn.entity.IssueManage;
import com.lingxu.module.earlyWarn.entity.IssueManageBook;
import com.lingxu.module.earlyWarn.entity.IssueParams;

import javax.servlet.http.HttpServletResponse;

/**
 * @Title: IssueManageSercvice
 * @Package: com.lingxu.module.earlyWarn.service
 * @Author: ysj闫世杰
 * @Email: 1105324813@qq.com
 * @Date: Created in 2024/1/3 15:08
 * @Description:
 * @Version: 1.0.0
 */
public interface IssueManageSercvice extends IService<IssueManage> {

    /**
     * @Author ysj闫世杰
     * @Description 新增办理
     * @Date 2024/1/4 15:23
     * @Param: issueHandle
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result addIssueHandle(IssueManage issueManage);


    /**
     * @Author ysj闫世杰
     * @Description 查询江苏省区划
     * @Date 2024/1/4 10:06
     * @Param:
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findRegionTree();

    /**
     * @Author ysj闫世杰
     * @Description 查询已添加、未添加标签
     * @Date 2024/1/4 11:24
     * @Param: issueId
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findTagInAndOut(String issueId);

    /**
     * @Author ysj闫世杰
     * @Description 导出Excel问题数量
     * @Date 2024/1/4 17:41
     * @Param: modelIds
     * @Param: response
     * @return void
     **/
    void exportExcelFile(String modelId, String issueId, HttpServletResponse response);

    /**
     * @Author ysj闫世杰
     * @Description 批量转办
     * @Date 2024/1/5 15:02
     * @Param: params
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result issueTransferBatch(IssueParams params);

    /**
     * 拆分问题之后转办
     * @param params
     * @return
     */
    Result issueTransfer(IssueParams params);


    /**
     * @Author ysj闫世杰
     * @Description 核查列表·
     * @Date 2024/1/5 16:34
     * @Param: params
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findIssueCheckedList(IssueParams params);

    /**
     * @Author ysj闫世杰
     * @Description 核查办理·
     * @Date 2024/1/8 9:16
     * @Param: manage
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result issueCheckedHandler(IssueManage manage);

    /**
     * @Author ysj闫世杰
     * @Description 上传审批单
     * @Date 2024/1/8 9:45
     * @Param: manage
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result uploadApprovalOrder(IssueManage manage);

    /**
     * 上传典型案例附件
     * @param manage
     * @return
     */
    Result uploadTypicalCasesAnnex(IssueManage manage);

    /**
     * @Author ysj闫世杰
     * @Description 查询需要领导审批的问题办理
     * @Date 2024/1/8 11:00
     * @Param: params
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findIssueHandleNeedApproval(IssueParams params);

    /**
     * @Author ysj闫世杰
     * @Description 领导审批
     * @Date 2024/1/8 16:19
     * @Param: manage
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result leaderApproval(IssueManage manage);

    /**
     * @Author ysj闫世杰
     * @Description 下级退回
     * @Date 2024/1/8 16:19
     * @Param: manage
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result subordinateBack(IssueManage manage);

    /**
     * @Author ysj闫世杰
     * @Description 办理结果
     * @Date 2024/1/8 16:32
     * @Param: manage
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result updateIssueResults(IssueManage manage);

    /**
     * @Author ysj闫世杰
     * @Description 查询审批单
     * @Date 2024/1/9 11:28
     * @Param: id
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findApprovalOrder(String id);

    /**
     * @Author ysj闫世杰
     * @Description 统计已审批、未审批数量
     * @Date 2024/1/9 14:51
     * @Param: params
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findIssueHandleNeedApprovalCount(IssueParams params);

    /**
     * @Author ysj闫世杰
     * @Description 办结批量
     * @Date 2024/1/10 9:28
     * @Param: params
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result updateIssueOverBatch(IssueParams params);


    /**
     * @Author ysj闫世杰
     * @Description 保存审批单数据
     * @Date 2024/1/12 11:42
     * @Param: manageBook
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result saveApprovalOrder(IssueManageBook manageBook);

    /**
     * @Author ysj闫世杰
     * @Description 查询审批单数据
     * @Date 2024/1/12 11:42
     * @Param: manageId
     * @return com.lingxu.base.common.api.vo.Result
     **/
    Result findApprovalOrderData(String manageId);

    //问题转办页面，问题拆分
    Result issueSplitBySssjly(String modelId, String issueId);

    //获取当前模型的问题来源表
    Result getHaveTableListByModelId(String modelId);

    Result deleteIssueManageByModelId(String modelId);
}
